SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[SP_TXMVTO_CNTB_I29]  
/*---------------------------------------------------------------------*/  
/*----- Empresa          : OFISIS S.A.                            -----*/  
/*----- Cliente          : OFISIS S.A.                            -----*/  
/*----- Sistema          : Contabilidad                           -----*/  
/*----- Modulo           : Empresa                                -----*/  
/*----- Programa         : Proceso de ajuste por inflacion        -----*/  
/*----- Nombre           : SP_TXMVTO_CNTB_I29                     -----*/  
/*----- Script           : TXMVTO_CNTB                            -----*/  
/*----- Desarrollado     : Percy Garcia                           -----*/  
/*----- Fecha            : 17/11/2003                             -----*/  
/*----- Base de Datos    : MS SQL Server                          -----*/  
/*----- Version BD       : 2000                                   -----*/  
/*----- Invoca a SP      : SP_TXMVTO_CNTB_I30                     -----*/  
/*---------------------------------------------------------------------*/  
/*----- Comentarios      : Ajuste para Cuentas != Inventario      -----*/  
/*---------------------------------------------------------------------*/  
/*----- Modificado Por   : LGP	                                  -----*/  
/*----- Fecha            : 27/07/2004                             -----*/  
/*---------------------------------------------------------------------*/  
/*----- Drop Proc SP_TXMVTO_CNTB_I29                              -----*/  
/*----- Grant ALL On SP_TXMVTO_CNTB_I29 To PUBLIC                 -----*/  
/*----- SP_TXMVTO_CNTB_I29 '01', 1, 7, '001', '095', 2004, 1,      
2003, 12, 'ANU', 'GEN', 'SOL', '0000000001', 'OFISIS', '01/11/2003', 5  
SP_TXMVTO_CNTB_I29 '01', 1, 7, '001', '095', 2004, 2,     
2004, 1, 'MEN', 'GEN', 'SOL', '0000000001', 'OFISIS', '01/11/2003', 5 -----*/  
/*---------------------------------------------------------------------*/  
                                  
@ISCO_EMPR           TD_VC_002,    
@INNU_CNTB_EMPR      TD_IN_001_CONT,    
@INNU_CNTB_DEST      TD_IN_001_CONT,    
@ISCO_UNID_CNTB      TD_VC_003,    
@ISCO_OPRC_CNTB      TD_VC_003,    
@INNU_ANNO           TD_IN_004_ANNO,    
@INNU_MESE           TD_IN_002_MESE,    
@INNU_ANNO_HIST      TD_IN_004_ANNO,    
@INNU_MESE_HIST      TD_IN_002_MESE,    
@ISST_TIPO_ACTU      TD_VC_003,     
@ISST_GENE_ASTO      TD_VC_003,     
@ISCO_MONE           TD_VC_003,     
@ISNU_ASTO           TD_VC_010,     
@ISCO_USUA           TD_VC_008,     
@IDFE_USUA           TD_DT_001,     
@INNV_INFO_CNTA      TD_IN_001      
                                  
As    
                                  
 Begin Tran SP_TXMVTO_CNTB_I29    
                       
 Declare     
                     
 @CSCO_CNTA_EMPR     TD_VC_020,     
 @CSCO_CNTA_REIB     TD_VC_020,     
 @CSCO_CNTA_REIR     TD_VC_020,                                          
 @CSST_VALO_LIMI     TD_VC_001,     
 @CNIM_LIMI          TD_NU_016_004,     
 @CNIM_VALO_AUXI     TD_NU_016_004,     
 @CSCO_MONE_LIAU     TD_VC_003,     
 @CSST_NIVE_AJUS     TD_VC_003,     
 @CSTI_AUXI_EMPR     TD_VC_001,                                          
 @CSCO_AUXI_EMPR     TD_VC_020,     
 @CSTI_DOCU          TD_VC_003,                          
 @CSNU_DOCU          TD_VC_020,     
 @CNNU_ANNO          TD_IN_004_ANNO,                             
 @CNNU_MESE          TD_IN_002_MESE,    
 @CNNU_SALD          TD_NU_016_004,                              
 @CSCO_MONE_LIMI     TD_VC_003,    
 @CSST_TIPO_CAMB     TD_VC_003,    
 @CSST_CNTA_CAMB     TD_VC_003,    
 @CDFE_DOCU_0001     TD_DT_001,                   
 @CDFE_DOCU_VENC     TD_DT_001,                   
 @VNHT_CARG          TD_NU_016_004,      
 @VNHT_ABON          TD_NU_016_004,      
 @VNFA_ACTU          TD_NU_009_004,    
 @VNFA_ACTU_INVE     TD_NU_009_004,    
 @VNAT_CARG TD_NU_016_004,    
 @VNAT_ABON          TD_NU_016_004,        
 @VNVA_REIN          TD_NU_016_004,    
 @VNNU_IND1          TD_NU_009_004,                                 
 @VNNU_IND2          TD_NU_009_004,    
 @VNNU_IND3          TD_NU_009_004,    
 @VNNU_INDX          TD_NU_009_004,    
 @VNNU_SECU       TD_IN_001,                                          
 @VNNU_ULTI_ASTO     TD_IN_001,                   
 @VSNU_ASTO          TD_VC_010,                                           
 @VSCO_CNTA_REIB     TD_VC_020,                                           
 @VSCO_CNTA_REIR     TD_VC_020,                                           
 @VSCO_CNTA_EMPR     TD_VC_020,                                           
 @VSTI_OPER          TD_VC_003,                                           
 @VSTI_OPER_0001     TD_VC_003,                                           
 @VDFE_ASTO_CNTB     TD_DT_001,                                           
 @VSST_FLAG          TD_VC_001,                                           
 @VSST_FLAG_0001     TD_VC_001,                                           
 @VNNU_ANNO_HI01     TD_IN_001,                                           
 @VNNU_MESE_HI01     TD_IN_001,                                           
 @VNNU_ANNO_0001     TD_IN_001,                                           
 @VNNU_MESE_0001     TD_IN_001,                                           
 @VNFA_ACTU_0002     TD_NU_016_004,                                           
 @VNFA_CAMB          TD_NU_015_006,                                           
 @VNIM_SALD_HIST     TD_NU_016_004,                                           
 @VSCO_MONE_0001     TD_VC_003,                             
 @VSCO_MONE_BA01     TD_VC_003,                             
 @VNIM_EVAL_LIMI     TD_NU_016_004,                              
 @VSID_CTAS_INVE     TD_VC_003,                                      
 @CDFE_DOCU          TD_DT_001,                                           
 @VSDE_GLOS          Varchar(50),        
 @VNVA_0001          TD_NU_015_006,               
 @VSST_AUXI_EMPR     TD_VC_001,               
 @VSST_DOCU_CNTB     TD_VC_001,             
 @VSST_REEM_ASIE     TD_VC_001,             
 @VSST_REEM_ASI1     TD_VC_001,             
 @VSST_ACTI          TD_VC_001,            
 @VSST_LOGI          TD_VC_001,            
 @VSST_PROD          TD_VC_001,            
 @VSID_0005          TD_VC_003,            
 @VSID_COMP          TD_VC_003,            
 @VSID_CTAS_PROD     TD_VC_003,             
 @VSST_GENE_ACTI     TD_VC_001,            
 @VSST_GENE_LOGI     TD_VC_001,             
 @VSST_GENE_PROD     TD_VC_001,         
--- VARIABLES TRANSFERENCIA MOVIMIENTOS ORIGEN         
 @CDFE_ASTO_CNTB TD_DT_001,         
 @CSTI_CAMB      TD_VC_003,         
 @CSCO_MONE      TD_VC_003,         
 @CNFA_CAMB      TD_NU_015_006,         
 @CNFA_CAMB_DIAR TD_NU_015_006,         
 @CSTI_OPER      TD_VC_003,         
 @CNIM_MVTO_ORIG TD_NU_016_004,         
 @CNIM_MVTO_CNTB TD_NU_016_004,         
 @CSDE_GLOS      TD_VC_100,         
 @CSTI_DOCU_REFE TD_VC_003,         
 @CSNU_DOCU_REFE TD_VC_020,         
 @CDFE_DOCU_REFE TD_DT_001,         
 @CSNO_GIRA      TD_VC_100,         
 @CDFE_ENTR_CHEQ TD_DT_001,         
 @CDFE_PROG_CHEQ TD_DT_001,         
 @CSCO_ORDE_SERV TD_VC_020,         
 @CSSI_MVTO_CNTB TD_VC_003,         
 @CSCO_UNID_ORIG TD_VC_003,         
 @CSCO_OPRC_ORIG TD_VC_003,         
 @CSNU_ASTO_ORIG TD_VC_010,         
 @CNNU_SECU_ORIG TD_IN_002,         
 @CSCO_CNTA_ORIG TD_VC_020,          
 @CSST_OTRS      TD_VC_020,         
 @CNNU_PROC      TD_IN_001,         
 @CNNU_PROC_SECU TD_IN_001,         
 @CSST_IMPR_CHEQ TD_VC_001,         
 @CSST_FLAG      TD_VC_020,         
 @CSST_GEST      TD_VC_001,         
 @CSST_REDO      TD_VC_001,         
 @CNCO_TABL_ORIG TD_IN_001,         
 @CSCO_CLAV_TAOR TD_VC_100,         
 @CSCO_TIPO_OPER TD_VC_003,         
 @CNIM_MVTO_RETE TD_NU_016_004,    
 @CSST_IMPR_RETE TD_VC_001,         
 @CSCO_USUA_APRO TD_VC_008,         
 @CDFE_USUA_APRO TD_DT_001_SIST,         
 @CNNU_SECU_DIST TD_IN_001,         
 @CNPO_DIST      TD_NU_009_004,         
 @CSTI_DOCU_DETR TD_VC_003,         
 @CSNU_DOCU_DETR TD_VC_020,         
 @CDFE_DOCU_DETR TD_DT_001,        
 @CSCO_OPRC_CNTB TD_VC_003,      
 @CSNU_ASTO      TD_VC_010,     
 @CNNU_SECU  TD_IN_001,    
 @VNNU_CONT  TD_IN_001,
 @VNIM_DIFE_SALD  TD_NU_016_004  
                               
 Select  @CNNU_SALD = 0,    
 @VNHT_CARG = 0,                                   
 @VNHT_ABON = 0,    
 @VNFA_ACTU = 0,    
 @VNAT_CARG = 0,    
 @VNAT_ABON = 0,    
 @VNVA_REIN = 0,    
 @VNNU_IND2 = 0.00,    
 @VNNU_IND1 = 0.00                                           
-- @VNNU_SECU = 1          
 Create Table #TWPLAN_AJUS        
 (CO_CNTA_EMPR Varchar(20) NULL,         
 CO_CNTA_REII Varchar(20) NULL)        
             
 /* obtengo indice de actualizacion a mes actual */    
 Select @VNNU_IND1 = IN_ACTU    
 From   TTINDI_ACTU       
 Where NU_ANNO = @INNU_ANNO     
 And NU_MESE = @INNU_MESE                               
                                          
 /* obtengo indice de actualizacion a mes historico */    
 Select @VNNU_IND2 = IsNull(IN_ACTU,1)    
 From   TTINDI_ACTU       
 Where NU_ANNO = @INNU_ANNO_HIST                     
 And NU_MESE = @INNU_MESE_HIST    
    
 Delete From TCFECH_PROC                  
 Where CO_EMPR = @ISCO_EMPR     
 And   NU_CNTB_EMPR = @INNU_CNTB_DEST    
 And   NU_ANNO = @INNU_ANNO     
 And   NU_MESE >= 0    
 And   NU_MESE <= @INNU_MESE    
                  
 If @@ERROR <> 0     /*si falla  el Delete*/                  
 Begin                   
   Rollback Transaction SP_TXMVTO_CNTB_I29    
   Return                  
 End                  
    
 Insert Into TCFECH_PROC                   
 ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE, NU_ULTI_ASTO,                   
 ST_CIER_CNTB, FE_CIER_CNTB, ST_MAYO_CNTB, FE_MAYO_CNTB, CO_USUA_CREA, FE_USUA_CREA,                  
 CO_USUA_MODI, FE_USUA_MODI )                  
 Select CO_EMPR, @INNU_CNTB_DEST, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE, 0,                  
 'N', Null, 'N', Null, @ISCO_USUA, @IDFE_USUA, @ISCO_USUA, @IDFE_USUA                  
 From TCFECH_PROC                  
 Where CO_EMPR = @ISCO_EMPR     
 And   NU_CNTB_EMPR = @INNU_CNTB_EMPR    
 And   NU_ANNO = @INNU_ANNO     
 And   NU_MESE >= 0    
 And   NU_MESE <= @INNU_MESE    
 And   CO_OPRC_CNTB != @ISCO_OPRC_CNTB    
     
 Select @VNNU_CONT = 0    
 While @VNNU_CONT <= @INNU_MESE    
 Begin    
  Insert Into TCFECH_PROC                   
  ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE, NU_ULTI_ASTO,     
  ST_CIER_CNTB, FE_CIER_CNTB, ST_MAYO_CNTB, FE_MAYO_CNTB, CO_USUA_CREA, FE_USUA_CREA,     
  CO_USUA_MODI, FE_USUA_MODI )     
  Values( @ISCO_EMPR , @INNU_CNTB_DEST, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @INNU_ANNO, @VNNU_CONT, 0,     
  'N', Null, 'N', Null, @ISCO_USUA, @IDFE_USUA, @ISCO_USUA, @IDFE_USUA)    
    
    Select @VNNU_CONT = @VNNU_CONT + 1    
 End    
    
 /* obtengo indice de actualizacion a mes anterior al historico */    
-- ACTUALIZ. MENSUAL    
 If @ISST_TIPO_ACTU = 'MEN'    
 Begin    
  If @INNU_MESE_HIST = 1     
  Begin                                           
   Select @VNNU_ANNO_HI01 = @INNU_ANNO_HIST - 1                                          
   Select @VNNU_MESE_HI01 = 12      
  End                                           
    
  If @INNU_MESE_HIST > 1                                          
  Begin    
   Select @VNNU_ANNO_HI01 = @INNU_ANNO_HIST    
   Select @VNNU_MESE_HI01 = @INNU_MESE_HIST - 1    
  End    
 End                       
                                  
 Else -- ACTUALIZ. ANUAL                                          
                                  
 Begin                                         
                                          
  Select @VNNU_ANNO_HI01 = @INNU_ANNO_HIST - 1                                          
  Select @VNNU_MESE_HI01 = 12                                          
                                          
 End /*FIN  If @ISST_TIPO_ACTU = 'MEN' */                                          
    
 Select @VNNU_IND3 = IN_ACTU    
 From   TTINDI_ACTU       
 Where NU_ANNO = @VNNU_ANNO_HI01     
 And NU_MESE = @VNNU_MESE_HI01    
    
 If @VNNU_IND2 IS null or @VNNU_IND2 = 0.00    
  Select @VNNU_IND2 = 1.00    
    
 If @VNNU_IND3 IS null or @VNNU_IND3 = 0.00    
  Select @VNNU_IND3 = 1.00    
    
 -- FACTOR AL MES ACTUAL                                           
 Select @VNFA_ACTU = @VNNU_IND1 / @VNNU_IND2    
 Select @VNFA_ACTU = Round(@VNFA_ACTU, 3 )                                       
    
 Select @VNFA_ACTU_INVE = @VNFA_ACTU                                         
     
 -- FACTOR AL MES ANTERIOR    
 Select @VNFA_ACTU_0002 = @VNNU_IND2 / @VNNU_IND3    
 Select @VNFA_ACTU_0002 = Round(@VNFA_ACTU_0002, 3 )    
    
 Select @VDFE_ASTO_CNTB = Convert(DateTime, Convert(Varchar, @IDFE_USUA, 103), 103)    
 Select @VSDE_GLOS = 'ASIENTO DE AJUSTE X INFLACION'    
 Select @VSST_FLAG = 'N'    
    
 Select @VSID_0005 = IsNull(ID_0005, ''),    
   @VSID_CTAS_INVE = IsNull(ID_CTAS_INVE, ''),    
   @VSID_CTAS_PROD = IsNull(ID_CTAS_PROD, ''),    
   @VSID_COMP = IsNull(ID_COMP, '')    
 From TTCNTB_EMPR    
 Where CO_EMPR = @ISCO_EMPR    
 And NU_CNTB_EMPR = @INNU_CNTB_EMPR    
    
 Select @VSST_REEM_ASIE = ST_REEM_ASIE    
 From TMPARA_CONT    
 Where CO_EMPR = @ISCO_EMPR    
    
 -- SE SETEO ESTO PARA QUE EN CASO SEAN CUENTAS QUE PROVIENEN O SE UTILIZAN EN OTROS SISTEMAS      
 -- SE ELIMINE TODO EL ASIENTO Y SE AJUSTE POR EL PROCESO TODAS MENOS LAS CUENTAS PARAMETRIZADAS      
 -- EN NUMEROS DE CONTABILIDAD LAS CUALES SE TRANSFIEREN DIRECTAMENTE DE LA CONTABILIDAD ORIGEN       
 Select @VSST_REEM_ASI1 = 'S'      
            
 Select @VSST_ACTI = IsNull(ST_ACTI, ''),             
 @VSST_PROD = IsNull(ST_PROD, ''),             
 @VSST_LOGI = IsNull(ST_LOGI, '')             
 From TMEMPR             
 Where CO_EMPR = @ISCO_EMPR             
    
 -- SI NO SE REEMPLAZA ENTONCES VERIFICA SI EXISTE EL SISTEMA ENTONCES NO REEMPLAZA             
 -- SI NO EXISTE ENTONCES REEMPLAZA            
 If @VSST_REEM_ASIE = 'N'            
  Begin             
  If @VSST_ACTI = 'S'            
     Select @VSST_GENE_ACTI = 'N'            
  Else             
     Select @VSST_GENE_ACTI = 'S'            
  If @VSST_LOGI = 'S'            
     Select @VSST_GENE_LOGI = 'N'            
  Else             
     Select @VSST_GENE_LOGI = 'S'            
  If @VSST_PROD = 'S'            
     Select @VSST_GENE_PROD = 'N'            
  Else             
     Select @VSST_GENE_PROD = 'S'            
  End             
 Else             
  Begin             
     Select @VSST_GENE_ACTI = 'S'            
     Select @VSST_GENE_LOGI = 'S'            
     Select @VSST_GENE_PROD = 'S'            
  End             
            
-- SI ESTA PARAMETRIZADO PARA REEMPLAZAR EL ASIENTO ENTONCES HACE EL DELETE Y GENERA NUEVAMENTE            
 If @VSST_REEM_ASI1 = 'S'            
 Begin  ---- (A)            
 If @ISST_TIPO_ACTU = 'MEN'    
  Begin    
   Delete From TXMVTO_CNTB            
   Where CO_EMPR = @ISCO_EMPR            
   And NU_CNTB_EMPR = @INNU_CNTB_DEST            
   And CO_UNID_CNTB = @ISCO_UNID_CNTB            
   And NU_ANNO = @INNU_ANNO            
   And (NU_MESE = @INNU_MESE             
   Or (NU_MESE = 0 And Exists (select co_empr from TXMVTO_CNTB    
           Where CO_EMPR = @ISCO_EMPR         
    And NU_CNTB_EMPR = @INNU_CNTB_DEST    
    And CO_UNID_CNTB = @ISCO_UNID_CNTB        
    And NU_ANNO = @INNU_ANNO        
    And NU_MESE = 0    
    And NU_PROC = 9999)))    
    
  End    
 If @ISST_TIPO_ACTU = 'ANU'          
  Begin    
   Delete From TXMVTO_CNTB            
   Where CO_EMPR = @ISCO_EMPR            
   And NU_CNTB_EMPR = @INNU_CNTB_DEST            
   And CO_UNID_CNTB = @ISCO_UNID_CNTB            
--  And CO_OPRC_CNTB = @ISCO_OPRC_CNTB            
   And NU_ANNO = @INNU_ANNO            
   And NU_MESE <= @INNU_MESE             
  End    
 Select @VSNU_ASTO = '0000000001'                                           
 Select @VNNU_SECU = 1                                           
            
 End --- (A)            
            
 Else  --- (B)            
            
 -- SI NO SE REEMPLAZA ENTONCES BORRA LAS LINEAS GENERADAS TALES QUE NO SEAN DE LOS OTROS SISTEMAS,             
 -- ADEMAS ACTUALIZA EL CORRELATIVO CON EL MAX DEL NUMERO DE ASIENTO Y GENERA EL SIGUIENTE SECUENCIAL             
 --- A PARTIR DEL ULTIMO YA EXISTENTE (SE AUMENTA NO REEMPLAZA)            
 Begin              
  Delete From TXMVTO_CNTB            
  Where CO_EMPR = @ISCO_EMPR            
  And NU_CNTB_EMPR = @INNU_CNTB_DEST            
  And CO_UNID_CNTB = @ISCO_UNID_CNTB            
  And CO_OPRC_CNTB = @ISCO_OPRC_CNTB            
  And NU_ANNO = @INNU_ANNO            
  And NU_MESE = @INNU_MESE             
  And ( (@VSST_GENE_ACTI = 'S') Or ( @VSST_GENE_ACTI = 'N'             
  And Not Exists (Select tA.CO_EMPR From TTIDEN_CNTA tA             
  Where tA.CO_EMPR = @ISCO_EMPR             
  And tA.NU_CNTB_EMPR = @INNU_CNTB_EMPR             
  And tA.ID_CNTA = @VSID_0005             
  And tA.CO_CNTA_EMPR = TXMVTO_CNTB.CO_CNTA_EMPR)))            
  And ( (@VSST_GENE_LOGI = 'S') Or ( @VSST_GENE_LOGI = 'N'             
  And Not Exists (Select tA.CO_EMPR From TTIDEN_CNTA tA             
  Where tA.CO_EMPR = @ISCO_EMPR             
  And tA.NU_CNTB_EMPR = @INNU_CNTB_EMPR             
  And tA.ID_CNTA = @VSID_CTAS_INVE            
  And tA.CO_CNTA_EMPR = TXMVTO_CNTB.CO_CNTA_EMPR)))            
  And ( (@VSST_GENE_PROD = 'S') Or ( @VSST_GENE_PROD = 'N'             
  And Not Exists (Select tA.CO_EMPR From TTIDEN_CNTA tA             
  Where tA.CO_EMPR = @ISCO_EMPR             
  And tA.NU_CNTB_EMPR = @INNU_CNTB_EMPR And tA.ID_CNTA = @VSID_CTAS_PROD            
  And tA.CO_CNTA_EMPR = TXMVTO_CNTB.CO_CNTA_EMPR)))            
            
  -- EXTRAE EL ULTIMO NUMERO DE ASIENTO            
  Select @VSNU_ASTO = NULL            
  Select @VSNU_ASTO = Max(NU_ASTO)             
  From TXMVTO_CNTB             
  Where CO_EMPR = @ISCO_EMPR            
  And NU_CNTB_EMPR = @INNU_CNTB_DEST            
  And CO_UNID_CNTB = @ISCO_UNID_CNTB            
  And CO_OPRC_CNTB = @ISCO_OPRC_CNTB            
  And NU_ANNO = @INNU_ANNO            
  And NU_MESE = @INNU_MESE            
            
  If IsNull(Rtrim(@VSNU_ASTO), '') = ''            
   Begin             
    Select @VSNU_ASTO = '0000000001'            
    Select @VNNU_SECU = 1             
   End              
  Else             
   Begin             
    -- EXTRAE EL MAXIMO SEC PARA ESE ASIENTO            
    Select @VNNU_SECU = IsNull(Max(NU_SECU), 0) + 1             
    From TXMVTO_CNTB             
    Where CO_EMPR = @ISCO_EMPR            
    And NU_CNTB_EMPR = @INNU_CNTB_DEST            
    And CO_UNID_CNTB = @ISCO_UNID_CNTB            
    And CO_OPRC_CNTB = @ISCO_OPRC_CNTB            
    And NU_ANNO = @INNU_ANNO            
    And NU_MESE = @INNU_MESE            
    And NU_ASTO = @VSNU_ASTO            
   End                    
             
 End  --- (B)            
            
 -- CURSOR DE CUENTAS A AJUSTAR (incluye las ctas de produccion) '030'y excluye las ctas de inventario '031'                                        
 -- NO CONSIDERA LAS CTAS DE ACTIVO, LOGISTICA NI PRODUCCION CASO EXISTAN ESOS SISTEMAS Y LAS CUENTAS ESTEN             
 -- EN NUMEROS DE CONTABILIDAD             
 Declare CU_TXMVTO_CNTB_I29_1 Cursor For                
 Select t2.CO_CNTA_EMPR, t2.ST_NIVE_AJUS, t2.ST_VALO_LIMI, t2.IM_LIMI, t2.CO_MONE, t2.ST_TIPO_CAMB, t2.ST_CNTA_CAMB,                           
 t2.CO_CNTA_REIB, t2.CO_CNTA_REIR                                
 From TMPLAN_EMPR t2                                          
 Where t2.CO_EMPR = @ISCO_EMPR                                           
 And t2.NU_ANNO = 9999    
 And t2.ST_AJUS = 'S'        
 And ( @VSST_REEM_ASIE = 'S' Or (@VSST_REEM_ASIE = 'N'        
    
 And ( (@VSST_GENE_ACTI = 'S') Or ( @VSST_GENE_ACTI = 'N'             
 And Not Exists (Select tA.CO_EMPR From TTIDEN_CNTA tA             
   Where tA.CO_EMPR = @ISCO_EMPR             
   And tA.NU_CNTB_EMPR = @INNU_CNTB_EMPR             
   And tA.ID_CNTA = @VSID_0005              
   And tA.CO_CNTA_EMPR = t2.CO_CNTA_EMPR)))            
            
 And ( (@VSST_GENE_LOGI = 'S') Or ( @VSST_GENE_LOGI = 'N'             
 And Not Exists (Select tA.CO_EMPR From TTIDEN_CNTA tA             
   Where tA.CO_EMPR = @ISCO_EMPR             
   And tA.NU_CNTB_EMPR = @INNU_CNTB_EMPR             
   And tA.ID_CNTA = @VSID_CTAS_INVE            
   And tA.CO_CNTA_EMPR = t2.CO_CNTA_EMPR)))            
        
 And ( (@VSST_GENE_PROD = 'S') Or ( @VSST_GENE_PROD = 'N'             
 And Not Exists (Select tA.CO_EMPR From TTIDEN_CNTA tA             
   Where tA.CO_EMPR = @ISCO_EMPR             
   And tA.NU_CNTB_EMPR = @INNU_CNTB_EMPR              
   And tA.ID_CNTA = @VSID_CTAS_PROD            
   And tA.CO_CNTA_EMPR = t2.CO_CNTA_EMPR)))))       
            
 And DataLength(CO_CNTA_EMPR) = @INNV_INFO_CNTA                                          
 And Not Exists(Select * From TTIDEN_CNTA t1                                          
   Where t1.CO_EMPR = @ISCO_EMPR                                          
   And t1.NU_CNTB_EMPR = @INNU_CNTB_EMPR                                          
   And t1.ID_CNTA = @VSID_CTAS_INVE                            
   And t1.CO_CNTA_EMPR = t2.CO_CNTA_EMPR                                           
   And t1.NU_ANNO = 9999)                                  
 And (IsNull(t2.CO_CNTA_REIR, '') != '' Or IsNull(t2.CO_CNTA_REIB, '') != '')                                 
 And t2.TI_SITU = 'ACT'                                          
 Order By t2.CO_CNTA_EMPR                                          
                                          
 Open CU_TXMVTO_CNTB_I29_1    
 Fetch CU_TXMVTO_CNTB_I29_1 Into @CSCO_CNTA_EMPR, @CSST_NIVE_AJUS, @CSST_VALO_LIMI, @CNIM_LIMI,                             
 @CSCO_MONE_LIMI, @CSST_TIPO_CAMB, @CSST_CNTA_CAMB, @CSCO_CNTA_REIB, @CSCO_CNTA_REIR                          
 While @@Fetch_status = 0    
 Begin                                    
    
  -- INSERTA EN TABLA TEMPORAL LAS CUENTAS AJUSTADAS         
  Insert Into #TWPLAN_AJUS(CO_CNTA_EMPR, CO_CNTA_REII)         
  Select @CSCO_CNTA_EMPR, (Case When Rtrim(IsNull(@CSCO_CNTA_REIB, '')) = '' Then @CSCO_CNTA_REIR         
  Else @CSCO_CNTA_REIB End)         
    
  -- AJUSTE X DOCUMENTO: Saldo del Documento en el periodo a ajustar    
  If @CSST_NIVE_AJUS = 'DOC'                                          
  Begin                                           
   Declare CU_TXMVTO_CNTB_I29_2 Cursor For    
   Select  t1.CO_CNTA_EMPR, t1.TI_AUXI_EMPR, t1.CO_AUXI_EMPR, t1.TI_DOCU,  t1.NU_DOCU,                                           
   IsNull(Sum( ((Ascii(TI_OPER)/67)* IsNull(IM_MVTO_CNTB, 0))), 0)                                           
   - IsNull(Sum(((65/Ascii(TI_OPER))* IsNull(IM_MVTO_CNTB, 0))), 0),   
   Min(t1.FE_DOCU), NULL, @CSCO_MONE_LIMI, Max(t1.FE_DOCU), Max(t1.FE_DOCU_VENC)    
   From TXMVTO_CNTB t1                                          
   Where t1.CO_EMPR = @ISCO_EMPR    
   And  t1.NU_CNTB_EMPR = @INNU_CNTB_EMPR     
   And  t1.NU_ANNO = @INNU_ANNO    
   And  t1.NU_MESE < @INNU_MESE    
   And  t1.CO_CNTA_EMPR = @CSCO_CNTA_EMPR        
   And  t1.SI_MVTO_CNTB = 'APR'                                         
   Group By t1.CO_CNTA_EMPR, t1.TI_AUXI_EMPR, t1.CO_AUXI_EMPR, t1.TI_DOCU, t1.NU_DOCU    
   Order By t1.CO_CNTA_EMPR, t1.TI_AUXI_EMPR, t1.CO_AUXI_EMPR, t1.TI_DOCU, t1.NU_DOCU     
  End                                           
    
  -- AJUSTE X AUXILIAR: Saldo del Auxiliar en el periodo a ajustar                                          
  If @CSST_NIVE_AJUS = 'AUX'    
  Begin    
  Declare CU_TXMVTO_CNTB_I29_2 Cursor For    
   Select  t1.CO_CNTA_EMPR, t1.TI_AUXI_EMPR, t1.CO_AUXI_EMPR, NULL, NULL,    
   IsNull(Sum( ((Ascii(TI_OPER)/67)* IsNull(IM_MVTO_CNTB, 0))), 0)    
   - IsNull(Sum(((65/Ascii(TI_OPER))* IsNull(IM_MVTO_CNTB, 0))), 0), NULL, 
   Max(t2.IM_VALO_LIMI), @CSCO_MONE_LIMI, NULL, NULL
   From TXMVTO_CNTB t1
     Left Outer Join TMVALO_LIMI t2    
     On t2.CO_EMPR = t1.CO_EMPR    
     And  t2.CO_CNTA_EMPR = t1.CO_CNTA_EMPR    
     And  t2.TI_AUXI_EMPR = t1.TI_AUXI_EMPR    
     And  t2.CO_AUXI_EMPR = t1.CO_AUXI_EMPR    
   Where t1.CO_EMPR = @ISCO_EMPR    
   And  t1.NU_CNTB_EMPR = @INNU_CNTB_EMPR    
   And  t1.NU_ANNO = @INNU_ANNO    
   And  t1.NU_MESE < @INNU_MESE    
   And  t1.CO_CNTA_EMPR = @CSCO_CNTA_EMPR    
   And  t1.SI_MVTO_CNTB = 'APR'    
  Group By t1.CO_CNTA_EMPR, t1.TI_AUXI_EMPR, t1.CO_AUXI_EMPR    
  Order By t1.CO_CNTA_EMPR, t1.TI_AUXI_EMPR, t1.CO_AUXI_EMPR    
  End    
                                          
  -- AJUSTE X CUENTA: Saldo de la Cuenta en el periodo a ajustar    
  If @CSST_NIVE_AJUS = 'CTA'                                          
  Begin                                           
  Declare CU_TXMVTO_CNTB_I29_2 Cursor For
  Select t1.CO_CNTA_EMPR, NULL, NULL, NULL, NULL,
    IsNull(Sum( ((Ascii(TI_OPER)/67)* IsNull(IM_MVTO_CNTB, 0))), 0)
    - IsNull(Sum(((65/Ascii(TI_OPER))* IsNull(IM_MVTO_CNTB, 0))), 0),
    NULL, NULL, @CSCO_MONE_LIMI, NULL, NULL
  From TXMVTO_CNTB t1
  Where t1.CO_EMPR = @ISCO_EMPR
  And  t1.NU_CNTB_EMPR = @INNU_CNTB_EMPR
  And  t1.NU_ANNO = @INNU_ANNO
  And  t1.NU_MESE < @INNU_MESE
  And  t1.CO_CNTA_EMPR = @CSCO_CNTA_EMPR
  And  t1.SI_MVTO_CNTB = 'APR'
  Group By t1.CO_CNTA_EMPR
  End                                           
      
 Open CU_TXMVTO_CNTB_I29_2    
 Fetch CU_TXMVTO_CNTB_I29_2 Into @CSCO_CNTA_EMPR, @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,                   
 @CSTI_DOCU, @CSNU_DOCU, @CNNU_SALD, @CDFE_DOCU, @CNIM_VALO_AUXI, @CSCO_MONE_LIAU,                   
 @CDFE_DOCU_0001, @CDFE_DOCU_VENC

 While @@Fetch_status = 0    
 Begin                                           
                                          
  If RTRIM(LTRIM(@CSTI_AUXI_EMPR)) = '' Select @CSTI_AUXI_EMPR = NULL                                        
  If RTRIM(LTRIM(@CSCO_AUXI_EMPR)) = '' Select @CSCO_AUXI_EMPR = NULL                                        
  If RTRIM(LTRIM(@CSTI_DOCU)) = '' Select @CSTI_DOCU = NULL                                        
  If RTRIM(LTRIM(@CSNU_DOCU)) = '' Select @CSNU_DOCU = NULL                                        
    
  If @CSST_NIVE_AJUS = 'DOC'                                          
  Begin     
   -- SACA INDICE DE LA FECHA DE DOCUMENTO CASO AJUSTE SEA POR 'DOC'                                        
   If @CDFE_DOCU IS NOT NULL                                        
   Begin        
    Select @VNNU_INDX = IsNull(IN_ACTU, 1)                                          
    From TTINDI_ACTU                                          
    Where NU_ANNO = Year(@CDFE_DOCU)                                        
    And NU_MESE = Month(@CDFE_DOCU)                                          
   End                                         
                                          
   Select @VNIM_SALD_HIST = 0             
   -- AJUSTE X DOCUMENTO: Saldo del Documento en el periodo historico        
   Select @VNIM_SALD_HIST = IsNull(Sum( ((Ascii(TI_OPER)/67)* IsNull(IM_MVTO_CNTB, 0))), 0)    
          - IsNull(Sum(((65/Ascii(TI_OPER))* IsNull(IM_MVTO_CNTB, 0))), 0)                                          
   From TXMVTO_CNTB t1                                          
   Where t1.CO_EMPR = @ISCO_EMPR    
   And  t1.NU_CNTB_EMPR = @INNU_CNTB_EMPR    
   And  t1.NU_ANNO = @INNU_ANNO_HIST    
   And  t1.NU_MESE < @INNU_MESE_HIST    
   And  t1.CO_CNTA_EMPR = @CSCO_CNTA_EMPR                                           
--   And  ((@CSTI_AUXI_EMPR IS NOT NULL And t1.TI_AUXI_EMPR = @CSTI_AUXI_EMPR) Or  (NullIf(t1.TI_AUXI_EMPR, '') IS NULL ))                                        
--   And  ((@CSCO_AUXI_EMPR IS NOT NULL And t1.CO_AUXI_EMPR = @CSCO_AUXI_EMPR) Or  (NullIf(t1.CO_AUXI_EMPR, '') IS NULL ))                       
--   And  ((@CSTI_DOCU IS NOT NULL And t1.TI_DOCU = @CSTI_DOCU) Or  (NullIf(t1.TI_DOCU, '') IS NULL ))                                    
--   And  ((@CSNU_DOCU IS NOT NULL And t1.NU_DOCU = @CSNU_DOCU) Or  (NullIf(t1.NU_DOCU, '') IS NULL ))               
   And  ((@CSTI_AUXI_EMPR IS NOT NULL And t1.TI_AUXI_EMPR = @CSTI_AUXI_EMPR))                                        
   And  ((@CSCO_AUXI_EMPR IS NOT NULL And t1.CO_AUXI_EMPR = @CSCO_AUXI_EMPR))                       
   And  ((@CSTI_DOCU IS NOT NULL And t1.TI_DOCU = @CSTI_DOCU))  
   And  ((@CSNU_DOCU IS NOT NULL And t1.NU_DOCU = @CSNU_DOCU))  
   And  t1.SI_MVTO_CNTB = 'APR'    
   Group By t1.CO_CNTA_EMPR, t1.TI_AUXI_EMPR, t1.CO_AUXI_EMPR, t1.TI_DOCU, t1.NU_DOCU    
      
  End /*FIN @CSST_NIVE_AJUS = 'DOC'*/                                          
                                          
  If @CSST_NIVE_AJUS = 'AUX'    
  Begin                     
        
   Select @VNIM_SALD_HIST = 0                               
   -- AJUSTE X AUXILIAR: Saldo del Auxiliar en el periodo historico        
   Select @VNIM_SALD_HIST = IsNull(Sum( ((Ascii(TI_OPER)/67)* IsNull(IM_MVTO_CNTB, 0))), 0)                                           
          - IsNull(Sum(((65/Ascii(TI_OPER))* IsNull(IM_MVTO_CNTB, 0))), 0)    
   From TXMVTO_CNTB t1                                          
   Where t1.CO_EMPR = @ISCO_EMPR    
   And  t1.NU_CNTB_EMPR = @INNU_CNTB_EMPR    
   And  t1.NU_ANNO = @INNU_ANNO_HIST                  
   And  t1.NU_MESE < @INNU_MESE_HIST    
   And  t1.CO_CNTA_EMPR = @CSCO_CNTA_EMPR                                           
   And  ((@CSTI_AUXI_EMPR IS NOT NULL And t1.TI_AUXI_EMPR = @CSTI_AUXI_EMPR) Or  (NullIf(t1.TI_AUXI_EMPR, '') IS NULL ))                                        
   And ((@CSCO_AUXI_EMPR IS NOT NULL And t1.CO_AUXI_EMPR = @CSCO_AUXI_EMPR) Or  (NullIf(t1.CO_AUXI_EMPR, '') IS NULL ))                                   
   And  t1.SI_MVTO_CNTB = 'APR'    
   Group By t1.CO_CNTA_EMPR, t1.TI_AUXI_EMPR, t1.CO_AUXI_EMPR                                          
  End /*Fin @CSST_NIVE_AJUS = 'AUX'*/    
                                          
  If @CSST_NIVE_AJUS = 'CTA'    
  Begin
   Select @VNIM_SALD_HIST = 0                                    
   -- AJUSTE X CUENTA: Saldo de la Cuenta en el periodo historico        
   Select @VNIM_SALD_HIST = IsNull(Sum( ((Ascii(T1.TI_OPER)/67)* IsNull(T1.IM_MVTO_CNTB, 0))), 0)
          - IsNull(Sum(((65/Ascii(T1.TI_OPER))* IsNull(T1.IM_MVTO_CNTB, 0))), 0)
   From TXMVTO_CNTB t1
   Where t1.CO_EMPR = @ISCO_EMPR
    And  t1.NU_CNTB_EMPR = @INNU_CNTB_EMPR
    And  t1.NU_ANNO = @INNU_ANNO_HIST
    And  t1.NU_MESE < @INNU_MESE_HIST
    And  t1.CO_CNTA_EMPR = @CSCO_CNTA_EMPR
    And  t1.SI_MVTO_CNTB = 'APR'
   Group By t1.CO_CNTA_EMPR

--select @CSCO_CNTA_EMPR, @VNIM_SALD_HIST -- borrar

  End /*Fin @CSST_NIVE_AJUS = 'CTA'*/    

  If @CSST_NIVE_AJUS = 'DOC' Or @CDFE_DOCU IS NOT NULL                                        
   Begin                                         
    Select @VNFA_ACTU = Round(@VNNU_IND1/@VNNU_INDX, 3)                                          
    Select @VNFA_ACTU_0002 = Round(@VNNU_IND2/@VNNU_INDX, 3)    
   End                                         
  Else                                        
   Begin                                         
    Select @VNFA_ACTU = Round(@VNNU_IND1/@VNNU_IND2, 3)                                          
    Select @VNFA_ACTU_0002 = Round(@VNNU_IND2/@VNNU_IND3, 3)    
   End                                         

  /* Si el saldo != a cero */    
  If @CNNU_SALD != 0.00 --    
  Begin    
   If @VNIM_SALD_HIST = 0     
     Begin     
      Select @VNIM_SALD_HIST = @CNNU_SALD    
      Select @VNFA_ACTU_0002 = 1.000      
     End    
-- Obtengo el mov. del mes que es el historico para el movimiento del mes, el cual se usa para el calculo del REI.
   Select @VNIM_DIFE_SALD = @CNNU_SALD - @VNIM_SALD_HIST  
    
  If @VNIM_DIFE_SALD = 0
   -- VALOR ACTUALIZADO DEL MES - VALOR ACTUALIZADO AL MES ANTERIOR         
   Select @VNVA_REIN = Round(@CNNU_SALD, 2) * @VNFA_ACTU - Round(IsNull(@VNIM_SALD_HIST, 0), 2) * @VNFA_ACTU_0002     
  Else 
   Select @VNVA_REIN = Round(@CNNU_SALD, 2) * @VNFA_ACTU - (Round(IsNull(@VNIM_SALD_HIST, 0), 2) * @VNFA_ACTU_0002 + @VNIM_DIFE_SALD)

  -- se cambio de ubic.                                 
   If @VNVA_REIN > 0                                          
   Select @VSTI_OPER = 'CAR'                                           
                                          
   If @VNVA_REIN < 0                                          
     Select @VSTI_OPER = 'ABO'              
                       
   If SubString(@CSCO_CNTA_EMPR, 1, 1) > '5'    
     Begin               
      Select @VSCO_CNTA_EMPR = @CSCO_CNTA_REIR    
      Select @VSST_AUXI_EMPR = NULL    
      Select @VSST_DOCU_CNTB = NULL    
      Select @VSST_AUXI_EMPR = ST_AUXI_EMPR, @VSST_DOCU_CNTB = ST_DOCU_CNTB    
      From TMPLAN_ANNO    
      Where CO_EMPR = @ISCO_EMPR    
      And CO_CNTA_EMPR =  @CSCO_CNTA_REIR    
     End    
    
   If SubString(@CSCO_CNTA_EMPR, 1, 1) <= '5'    
    Begin    
     Select @VSCO_CNTA_EMPR = @CSCO_CNTA_REIB                                          
     Select @VSST_AUXI_EMPR = NULL              
     Select @VSST_DOCU_CNTB = NULL              
     Select @VSST_AUXI_EMPR = ST_AUXI_EMPR, @VSST_DOCU_CNTB = ST_DOCU_CNTB              
     From TMPLAN_ANNO               
     Where CO_EMPR = @ISCO_EMPR               
     And CO_CNTA_EMPR =  @CSCO_CNTA_REIB    
    End               
    
   If @VSTI_OPER = 'CAR'                                          
     Select @VSTI_OPER_0001 = 'ABO'                                          
                                          
   If @VSTI_OPER = 'ABO'                                          
     Select @VSTI_OPER_0001 = 'CAR'                                          
                          
   If @VSCO_CNTA_EMPR != '' And @VNVA_REIN != 0 And @VNVA_REIN IS NOT NULL      
     Begin      
     If (@CSST_VALO_LIMI = 'S' And @CNIM_LIMI > 0) Or IsNull(@CNIM_VALO_AUXI, 0) > 0     
       Begin       
        Select @VNIM_EVAL_LIMI = 0                            
        If @CNIM_VALO_AUXI > 0                            
          Select @VNIM_EVAL_LIMI = @CNIM_VALO_AUXI    
        Else    
          Select @VNIM_EVAL_LIMI = @CNIM_LIMI     
                               
        -- EVALUA SI LA MONEDA DE LA CONTAB ORIGEN ES IGUAL A LA MONEDA DEL VALOR LIMITE                            
        -- SI SON DIFERENTES ENTONCES CONVIERTE EL IMPORTE LIMITE A LA MONEDA DE LA CONT. ORIGEN                            
        If @ISCO_MONE != @CSCO_MONE_LIMI    
        Begin    
         -- saca moneda                            
         Select @VSCO_MONE_0001 = CO_MON1,            
         @VSCO_MONE_BA01 = CO_MONE_BAS1                                  
         From TMCONV_MONE                                 
         Where CO_MONE_ORIG = @CSCO_MONE_LIMI                                 
         And CO_MONE_DEST = @ISCO_MONE                       
                               
         --- caso transaccional                             
                              
         If @CSST_TIPO_CAMB = 'TRA'                                
          Select @VNFA_CAMB = (Case When @CSST_CNTA_CAMB = 'COM' Then FA_CMPR_OFIC Else FA_VNTA_OFIC End)                                   
          From TCFACT_CAMB               
          Where CO_MONE = @VSCO_MONE_0001                                  
          And CO_MONE_BASE = @VSCO_MONE_BA01                                
          And Convert(DateTime, Convert(Varchar, FE_CAMB, 103), 103) = Convert(DateTime, Convert(Varchar, @CDFE_DOCU, 103), 103)    
                                
         --- caso promedio mensual                            
         If @CSST_TIPO_CAMB = 'PRO'                                
          Select @VNFA_CAMB = (Case When @CSST_CNTA_CAMB = 'COM' Then FA_CAMB_CMPR Else FA_CAMB_VNTA End)                           
          From TCFACT_PRME                                   
          Where CO_EMPR = @ISCO_EMPR                                
          And CO_MONE = @VSCO_MONE_0001                                  
          And CO_MONE_BASE = @VSCO_MONE_BA01                                
          And NU_ANNO = @INNU_ANNO                                   
          And NU_MESE = @INNU_MESE    
    
         --- caso cierre                            
         If @CSST_TIPO_CAMB = 'CIE'                                
          Select @VNFA_CAMB = (Case When @CSST_CNTA_CAMB = 'COM' Then FA_CAMB_CMPR Else FA_CAMB_VNTA End)                                   
          From TCFACT_CIER                                   
          Where CO_MONE = @VSCO_MONE_0001                                  
          And NU_ANNO = @INNU_ANNO                                   
          And NU_MESE = @INNU_MESE                                 
                                                
         -- ARMA FECHA EN BASE AL A?O Y MES INGRESADO CASO EL NIVEL DE AJUSTE SEA DIFERENTE A 'DOC'                          
         If @CSST_NIVE_AJUS != 'DOC'                            
          Select @CDFE_DOCU  = Convert(DateTime, '01' + '/' + Convert(VarChar(2),@INNU_MESE) + '/' + CONVERT(VarChar(4),@INNU_ANNO) , 103)     
                         
         Execute SP_CONV_MONE_Q06  @ISCO_EMPR, @CSCO_MONE_LIMI, @INNU_CNTB_DEST, '', @CSST_CNTA_CAMB,                                      
          @VNFA_CAMB, @CDFE_DOCU, @VNIM_EVAL_LIMI, 'P',@CSST_TIPO_CAMB, @VNIM_EVAL_LIMI OutPut, @VNVA_0001 OutPut                    
        End /* Fin @ISCO_MONE != @CSCO_MONE_LIMI */    
                            
--        If @VNVA_REIN > @VNIM_EVAL_LIMI
        If Round(@CNNU_SALD, 2) * @VNFA_ACTU > @VNIM_EVAL_LIMI
          Select @VNVA_REIN = @VNIM_EVAL_LIMI - (Round(IsNull(@VNIM_SALD_HIST, 0), 2) * @VNFA_ACTU_0002 + @VNIM_DIFE_SALD)
                                    
       End  /* Fin (@CSST_VALO_LIMI = 'S' And @CNIM_LIMI > 0)  Or IsNull(@CNIM_VALO_AUXI, 0) > 0*/    
    
   -- GRABA LINEA ORIGEN                                          
   Insert Into TXMVTO_CNTB                                           
   (CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR,                                          
   TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB, FA_CAMB_DIAR,                                        
   TI_OPER, IM_MVTO_ORIG,  IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE, NU_DOCU_REFE, FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ,                                          
   FE_PROG_CHEQ, CO_ORDE_SERV, SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG, NU_SECU_ORIG, CO_CNTA_ORIG,                                          
   ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, ST_GEST, ST_REDO, CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER,                               
   IM_MVTO_RETE, ST_IMPR_RETE, CO_USUA_APRO, FE_USUA_APRO, CO_USUA_CREA, FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI,                                          
   NU_SECU_DIST, PO_DIST, TI_DOCU_DETR, NU_DOCU_DETR, FE_DOCU_DETR)                                          
   Values                                          
   (@ISCO_EMPR, @INNU_CNTB_DEST, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @INNU_ANNO, @INNU_MESE, @VSNU_ASTO, @VNNU_SECU,     
    @VDFE_ASTO_CNTB, @CSCO_CNTA_EMPR, NullIf(Rtrim(@CSTI_AUXI_EMPR), ''), NullIf(Rtrim(@CSCO_AUXI_EMPR), ''),     
    NullIf(Rtrim(@CSTI_DOCU), ''), NullIf(Rtrim(@CSNU_DOCU), ''), @CDFE_DOCU_0001, @CDFE_DOCU_VENC, 'PAC', @ISCO_MONE,     
    1.00, 1.00, @VSTI_OPER, Round(Abs(@VNVA_REIN), 2), Round(Abs(@VNVA_REIN), 2), @VSDE_GLOS, NULL, NULL, NULL, NULL,     
    NULL, NULL, NULL, 'APR', NULL, NULL, NULL, NULL, NULL, NULL, 9990, 9990, 'N', NULL, 'N', 'N', NULL, NULL, NULL,                                          
    NULL, 'N', @ISCO_USUA, @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, NULL, NULL, NULL, NULL, NULL)                                          
                                  
   If @@ERROR != 0                                  
     Begin                                   
       Rollback Tran SP_TXMVTO_CNTB_I29                                  
       Return                                  
     End                          
    
   Select @VSST_FLAG = 'S'                                          
                                  
   Select @VNNU_SECU = @VNNU_SECU + 1                 
              
  -- SI CUENTA REI NO LLEVA AUXILIAR               
  If @VSST_AUXI_EMPR = 'N'              
    Begin               
      Select @CSTI_AUXI_EMPR = NULL              
      Select @CSCO_AUXI_EMPR = NULL              
    End               
              
 -- SI CUENTA REI NO LLEVA DOCUMENTO              
  If @VSST_DOCU_CNTB = 'N'              
    Begin               
      Select @CSTI_DOCU = NULL              
      Select @CSNU_DOCU = NULL              
      Select @CDFE_DOCU_0001 = NULL              
      Select @CDFE_DOCU_VENC = NULL              
    End                   
    
  -- GRABA LINEA REI                                          
  Insert Into TXMVTO_CNTB                                           
  (CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR,                                          
  TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE, FA_CAMB, FA_CAMB_DIAR,                                          
  TI_OPER, IM_MVTO_ORIG,  IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE, NU_DOCU_REFE, FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ,                                          
  FE_PROG_CHEQ, CO_ORDE_SERV, SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG, NU_SECU_ORIG, CO_CNTA_ORIG,                                          
  ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, ST_GEST, ST_REDO, CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER,                                          
  IM_MVTO_RETE, ST_IMPR_RETE, CO_USUA_APRO, FE_USUA_APRO, CO_USUA_CREA, FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI,                                          
  NU_SECU_DIST, PO_DIST, TI_DOCU_DETR, NU_DOCU_DETR, FE_DOCU_DETR)                                    
  Values                                
  (@ISCO_EMPR, @INNU_CNTB_DEST, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @INNU_ANNO, @INNU_MESE, @VSNU_ASTO, @VNNU_SECU, @VDFE_ASTO_CNTB, @VSCO_CNTA_EMPR,                                          
  NullIf(Rtrim(@CSTI_AUXI_EMPR), ''), NullIf(Rtrim(@CSCO_AUXI_EMPR), ''), NullIf(Rtrim(@CSTI_DOCU), ''), NullIf(Rtrim(@CSNU_DOCU), ''),                   
  @CDFE_DOCU_0001, @CDFE_DOCU_VENC, 'PAC', @ISCO_MONE, 1.00, 1.00, @VSTI_OPER_0001, Round(Abs(@VNVA_REIN), 2),      
  Round(Abs(@VNVA_REIN), 2), @VSDE_GLOS, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'APR', NULL, NULL, NULL, NULL,     
  NULL, NULL, 9990, 9990, 'N', NULL, 'N', 'N', NULL, NULL, NULL, NULL, 'N', @ISCO_USUA, @IDFE_USUA, @ISCO_USUA,     
  @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, NULL, NULL, NULL, NULL, NULL)                                          
                                  
  If @@ERROR != 0                                  
    Begin                                   
      Rollback Tran SP_TXMVTO_CNTB_I29                                  
      Return                                  
    End                                  
                                          
  Select @VNNU_SECU = @VNNU_SECU + 1                                          
  End /*FIN CO_CNTA_EMPR != ''*/                                          
                                          
--  End  /* ----------------FIN   If @VSCO_CNTA_REIB != '' Or @VSCO_CNTA_REIR != '' ------------*/                                          
                                         
  End /* Si el saldo != a cero */    
    
 Fetch CU_TXMVTO_CNTB_I29_2 Into @CSCO_CNTA_EMPR, @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,                                           
 @CSTI_DOCU, @CSNU_DOCU, @CNNU_SALD, @CDFE_DOCU, @CNIM_VALO_AUXI, @CSCO_MONE_LIAU,                   
 @CDFE_DOCU_0001, @CDFE_DOCU_VENC      
 End     
 Close CU_TXMVTO_CNTB_I29_2    
 Deallocate  CU_TXMVTO_CNTB_I29_2                                    
                                          
 Fetch CU_TXMVTO_CNTB_I29_1 Into @CSCO_CNTA_EMPR, @CSST_NIVE_AJUS, @CSST_VALO_LIMI, @CNIM_LIMI,                             
 @CSCO_MONE_LIMI, @CSST_TIPO_CAMB, @CSST_CNTA_CAMB, @CSCO_CNTA_REIB, @CSCO_CNTA_REIR    
 End                 
 Close CU_TXMVTO_CNTB_I29_1    
 Deallocate  CU_TXMVTO_CNTB_I29_1                                     
                                     
 -- CASO INVENTARIOS GRABA AJUSTE                                    
 Exec SP_TXMVTO_CNTB_I30 @ISCO_EMPR, @INNU_CNTB_EMPR, @INNU_CNTB_DEST, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB,                                     
 @INNU_ANNO, @INNU_MESE, @INNU_ANNO_HIST, @INNU_MESE_HIST, @ISST_TIPO_ACTU, @ISCO_MONE, @VSNU_ASTO, @ISCO_USUA,                                     
 @IDFE_USUA, @INNV_INFO_CNTA, @VSST_FLAG, @VNNU_SECU, @VDFE_ASTO_CNTB, @VNFA_ACTU_INVE, @VSID_CTAS_INVE,             
 @VSID_CTAS_PROD, @VSID_0005, @VSID_COMP, @VSST_GENE_ACTI, @VSST_GENE_LOGI, @VSST_GENE_PROD,       
 @VSST_REEM_ASIE, @VSST_FLAG_0001 OUTPUT            
                                    
                                    
 If @VSST_FLAG = 'S' Or @VSST_FLAG_0001 = 'S'                                    
   Begin    
     Update TCFECH_PROC    
     Set NU_ULTI_ASTO = Convert(Int, @VSNU_ASTO),
     CO_USUA_MODI =  @ISCO_USUA,
     FE_USUA_MODI  = @IDFE_USUA
     Where CO_EMPR = @ISCO_EMPR    
      And NU_CNTB_EMPR = @INNU_CNTB_DEST                                           
      And CO_UNID_CNTB = @ISCO_UNID_CNTB    
      And CO_OPRC_CNTB = @ISCO_OPRC_CNTB    
      And NU_ANNO = @INNU_ANNO                 
      And NU_MESE = @INNU_MESE                                      
                                  
    If @@ERROR != 0                                  
      Begin                                   
        Rollback Tran SP_TXMVTO_CNTB_I29                                  
        Return                                  
      End                                  
   End                                           
                                    
 -- SI GRABO AJUSTE PARA LAS CTAS DE INVENTARIO, ENTONCES MANDA FLAG 'S'                                    
    
    
 If @VSST_FLAG_0001 = 'S'                                    
   Select @VSST_FLAG = 'S'                                    
    
 -- transferencia de asientos de otros sistemas caso la empresa         
 -- este parametrizada para no reemplazar astos de ajuste.         
/*        
 If @VSST_REEM_ASIE = 'N'        
  Begin  ---- (XX)        
  -- SI EXISTE EL SISTEMA DE ACTIVOS         
  If @VSST_ACTI = 'S'         
    Begin         
      Exec SP_TXMVTO_CNTB_I42 @ISCO_EMPR, @INNU_CNTB_EMPR, @INNU_CNTB_DEST, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB,         
      @INNU_ANNO, @INNU_MESE, @VSNU_ASTO, @VSID_0005          
    End          
  -- SI EXISTE EL SISTEMA DE LOGISTICA        
  If @VSST_LOGI = 'S'         
    Begin         
      Exec SP_TXMVTO_CNTB_I42 @ISCO_EMPR, @INNU_CNTB_EMPR, @INNU_CNTB_DEST, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB,         
      @INNU_ANNO, @INNU_MESE, @VSNU_ASTO, @VSID_CTAS_INVE            
    End          
        
  -- SI EXISTE EL SISTEMA DE PRODUCCION        
  If @VSST_PROD = 'S'         
    Begin         
      Exec SP_TXMVTO_CNTB_I42 @ISCO_EMPR, @INNU_CNTB_EMPR, @INNU_CNTB_DEST, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB,         
      @INNU_ANNO, @INNU_MESE, @VSNU_ASTO, @VSID_CTAS_PROD            
    End          
 End --- (XX)        
*/         
         
 -- GRABA EN LA OPERACION DE AJUSTE LAS LINEAS DE MOVIMIENTO , GRABA EN LA CONTAB DESTINO         
 Select @VNNU_SECU = IsNull(Max(NU_SECU), 0)         
 From TXMVTO_CNTB         
 Where CO_EMPR = @ISCO_EMPR         
 And NU_CNTB_EMPR = @INNU_CNTB_DEST        
 And CO_UNID_CNTB = @ISCO_UNID_CNTB        
 And CO_OPRC_CNTB = @ISCO_OPRC_CNTB        
 And NU_ANNO = @INNU_ANNO        
 And NU_MESE = @INNU_MESE        
 And NU_ASTO = @VSNU_ASTO        
        
 Select @VNNU_SECU = IsNull(@VNNU_SECU, 0) + 1         
     
 --- se insertan los movimientos de cada periodo ---    
 If @ISST_TIPO_ACTU = 'MEN'    
   Declare CU_TXMVTO_CNTB_I29_2 Cursor For          
/*   Select t2.CO_OPRC_CNTB, T2.NU_ANNO, T2.NU_MESE, T2.NU_ASTO, T2.NU_SECU,     
   t2.FE_ASTO_CNTB, t2.CO_CNTA_EMPR, t2.TI_AUXI_EMPR, t2.CO_AUXI_EMPR, t2.TI_DOCU, t2.NU_DOCU,         
   t2.FE_DOCU, t2.FE_DOCU_VENC, t2.TI_CAMB, t2.CO_MONE, t2.FA_CAMB, t2.FA_CAMB_DIAR, t2.TI_OPER, t2.IM_MVTO_ORIG,         
   t2.IM_MVTO_CNTB, t2.DE_GLOS, t2.TI_DOCU_REFE, t2.NU_DOCU_REFE, t2.FE_DOCU_REFE, t2.NO_GIRA, t2.FE_ENTR_CHEQ,         
   t2.FE_PROG_CHEQ, t2.CO_ORDE_SERV, t2.SI_MVTO_CNTB, t2.CO_UNID_ORIG, t2.CO_OPRC_ORIG, t2.NU_ASTO_ORIG, t2.NU_SECU_ORIG,         
   t2.CO_CNTA_ORIG, t2.ST_OTRS, t2.NU_PROC, t2.NU_PROC_SECU, t2.ST_IMPR_CHEQ, t2.ST_FLAG, t2.ST_GEST, t2.ST_REDO,     
   t2.CO_TABL_ORIG, t2.CO_CLAV_TAOR, t2.CO_TIPO_OPER, t2.IM_MVTO_RETE, t2.ST_IMPR_RETE, t2.CO_USUA_APRO, t2.FE_USUA_APRO,     
   t2.NU_SECU_DIST, t2.PO_DIST, t2.TI_DOCU_DETR, t2.NU_DOCU_DETR, t2.FE_DOCU_DETR        
   From   TXMVTO_CNTB t2    
   Where t2.CO_EMPR = @ISCO_EMPR         
   And t2.NU_CNTB_EMPR = @INNU_CNTB_EMPR        
   And t2.CO_UNID_CNTB = @ISCO_UNID_CNTB        
   And t2.NU_ANNO = @INNU_ANNO        
   And t2.NU_MESE = 0    
   And not Exists (select co_empr from TXMVTO_CNTB    
            Where CO_EMPR = @ISCO_EMPR         
     And NU_CNTB_EMPR = @INNU_CNTB_DEST    
     And CO_UNID_CNTB = @ISCO_UNID_CNTB        
     And NU_ANNO = @INNU_ANNO        
     And NU_MESE = 0    
     And NU_PROC = 9999)    
   Union    */
   Select t2.CO_OPRC_CNTB, T2.NU_ANNO, T2.NU_MESE, T2.NU_ASTO, T2.NU_SECU,     
   t2.FE_ASTO_CNTB, t2.CO_CNTA_EMPR, t2.TI_AUXI_EMPR, t2.CO_AUXI_EMPR, t2.TI_DOCU, t2.NU_DOCU,         
   t2.FE_DOCU, t2.FE_DOCU_VENC, t2.TI_CAMB, t2.CO_MONE, t2.FA_CAMB, t2.FA_CAMB_DIAR, t2.TI_OPER, t2.IM_MVTO_ORIG,         
   t2.IM_MVTO_CNTB, t2.DE_GLOS, t2.TI_DOCU_REFE, t2.NU_DOCU_REFE, t2.FE_DOCU_REFE, t2.NO_GIRA, t2.FE_ENTR_CHEQ,         
   t2.FE_PROG_CHEQ, t2.CO_ORDE_SERV, t2.SI_MVTO_CNTB, t2.CO_UNID_ORIG, t2.CO_OPRC_ORIG, t2.NU_ASTO_ORIG, t2.NU_SECU_ORIG,         
   t2.CO_CNTA_ORIG, t2.ST_OTRS, t2.NU_PROC, t2.NU_PROC_SECU, t2.ST_IMPR_CHEQ, t2.ST_FLAG, t2.ST_GEST, t2.ST_REDO,     
   t2.CO_TABL_ORIG, t2.CO_CLAV_TAOR, t2.CO_TIPO_OPER, t2.IM_MVTO_RETE, t2.ST_IMPR_RETE, t2.CO_USUA_APRO, t2.FE_USUA_APRO,     
   t2.NU_SECU_DIST, t2.PO_DIST, t2.TI_DOCU_DETR, t2.NU_DOCU_DETR, t2.FE_DOCU_DETR        
From   TXMVTO_CNTB t2    
   Where t2.CO_EMPR = @ISCO_EMPR         
   And t2.NU_CNTB_EMPR = @INNU_CNTB_EMPR        
   And t2.CO_UNID_CNTB = @ISCO_UNID_CNTB        
   And t2.NU_ANNO = @INNU_ANNO        
   And t2.NU_MESE = @INNU_MESE    
    
 If @ISST_TIPO_ACTU = 'ANU'    
   Declare CU_TXMVTO_CNTB_I29_2 Cursor For          
   Select t2.CO_OPRC_CNTB, T2.NU_ANNO, T2.NU_MESE, T2.NU_ASTO, T2.NU_SECU,     
   t2.FE_ASTO_CNTB, t2.CO_CNTA_EMPR, t2.TI_AUXI_EMPR, t2.CO_AUXI_EMPR, t2.TI_DOCU, t2.NU_DOCU,         
   t2.FE_DOCU, t2.FE_DOCU_VENC, t2.TI_CAMB, t2.CO_MONE, t2.FA_CAMB, t2.FA_CAMB_DIAR, t2.TI_OPER, t2.IM_MVTO_ORIG,         
   t2.IM_MVTO_CNTB, t2.DE_GLOS, t2.TI_DOCU_REFE, t2.NU_DOCU_REFE, t2.FE_DOCU_REFE, t2.NO_GIRA, t2.FE_ENTR_CHEQ,         
   t2.FE_PROG_CHEQ, t2.CO_ORDE_SERV, t2.SI_MVTO_CNTB, t2.CO_UNID_ORIG, t2.CO_OPRC_ORIG, t2.NU_ASTO_ORIG, t2.NU_SECU_ORIG,         
   t2.CO_CNTA_ORIG, t2.ST_OTRS, t2.NU_PROC, t2.NU_PROC_SECU, t2.ST_IMPR_CHEQ,         
   t2.ST_FLAG, t2.ST_GEST, t2.ST_REDO, t2.CO_TABL_ORIG, t2.CO_CLAV_TAOR, t2.CO_TIPO_OPER, t2.IM_MVTO_RETE, t2.ST_IMPR_RETE,         
   t2.CO_USUA_APRO, t2.FE_USUA_APRO, t2.NU_SECU_DIST, t2.PO_DIST, t2.TI_DOCU_DETR, t2.NU_DOCU_DETR, t2.FE_DOCU_DETR        
   From   TXMVTO_CNTB t2    
   Where t2.CO_EMPR = @ISCO_EMPR         
   And t2.NU_CNTB_EMPR = @INNU_CNTB_EMPR        
   And t2.CO_UNID_CNTB = @ISCO_UNID_CNTB        
   And t2.NU_ANNO = @INNU_ANNO     
   And t2.NU_MESE > 0 -- NUEVO 
   And t2.NU_MESE <= @INNU_MESE

 /*Select t2.FE_ASTO_CNTB, t2.CO_CNTA_EMPR, t2.TI_AUXI_EMPR, t2.CO_AUXI_EMPR, t2.TI_DOCU, t2.NU_DOCU,         
 t2.FE_DOCU, t2.FE_DOCU_VENC, t2.TI_CAMB, t2.CO_MONE, t2.FA_CAMB, t2.FA_CAMB_DIAR, t2.TI_OPER, t2.IM_MVTO_ORIG,         
 t2.IM_MVTO_CNTB, t2.DE_GLOS, t2.TI_DOCU_REFE, t2.NU_DOCU_REFE, t2.FE_DOCU_REFE, t2.NO_GIRA, t2.FE_ENTR_CHEQ,         
 t2.FE_PROG_CHEQ, t2.CO_ORDE_SERV, t2.SI_MVTO_CNTB, t2.CO_UNID_ORIG, t2.CO_OPRC_ORIG, t2.NU_ASTO_ORIG, t2.NU_SECU_ORIG,         
 t2.CO_CNTA_ORIG, t2.ST_OTRS, t2.NU_PROC, t2.NU_PROC_SECU, t2.ST_IMPR_CHEQ,         
 t2.ST_FLAG, t2.ST_GEST, t2.ST_REDO, t2.CO_TABL_ORIG, t2.CO_CLAV_TAOR, t2.CO_TIPO_OPER, t2.IM_MVTO_RETE, t2.ST_IMPR_RETE,         
 t2.CO_USUA_APRO, t2.FE_USUA_APRO, t2.NU_SECU_DIST, t2.PO_DIST, t2.TI_DOCU_DETR, t2.NU_DOCU_DETR, t2.FE_DOCU_DETR        
 From       
 (Select Distinct t1.CO_EMPR, t1.NU_CNTB_EMPR, t1.CO_UNID_CNTB, t1.CO_OPRC_CNTB, t1.NU_ANNO, t1.NU_MESE, t1.NU_ASTO      
 From TXMVTO_CNTB t1, #TWPLAN_AJUS t2        
 Where t1.CO_EMPR = @ISCO_EMPR         
 And t1.NU_CNTB_EMPR = @INNU_CNTB_EMPR        
 And t1.CO_UNID_CNTB = @ISCO_UNID_CNTB        
 And t1.NU_ANNO = @INNU_ANNO        
 And t1.NU_MESE = @INNU_MESE    
 And t2.CO_CNTA_EMPR = t1.CO_CNTA_EMPR ) t1, TXMVTO_CNTB t2       
 Where t2.CO_EMPR = t1.CO_EMPR      
 And t2.NU_CNTB_EMPR = t1.NU_CNTB_EMPR       
 And t2.CO_UNID_CNTB = t1.CO_UNID_CNTB      
 And t2.CO_OPRC_CNTB = t1.CO_OPRC_CNTB      
 And t2.NU_ANNO = t1.NU_ANNO      
 And t2.NU_MESE = t1.NU_MESE      
 And t2.NU_ASTO = t1.NU_ASTO  */    
        
 Open CU_TXMVTO_CNTB_I29_2            
 Fetch CU_TXMVTO_CNTB_I29_2 Into @CSCO_OPRC_CNTB, @CNNU_ANNO, @CNNU_MESE, @CSNU_ASTO, @CNNU_SECU,    
 @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR, @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU,          
 @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_CAMB, @CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR, @CSTI_OPER, @CNIM_MVTO_ORIG,         
 @CNIM_MVTO_CNTB, @CSDE_GLOS, @CSTI_DOCU_REFE, @CSNU_DOCU_REFE, @CDFE_DOCU_REFE, @CSNO_GIRA, @CDFE_ENTR_CHEQ,         
 @CDFE_PROG_CHEQ, @CSCO_ORDE_SERV, @CSSI_MVTO_CNTB, @CSCO_UNID_ORIG, @CSCO_OPRC_ORIG, @CSNU_ASTO_ORIG, @CNNU_SECU_ORIG,         
 @CSCO_CNTA_ORIG, @CSST_OTRS, @CNNU_PROC, @CNNU_PROC_SECU, @CSST_IMPR_CHEQ, @CSST_FLAG, @CSST_GEST, @CSST_REDO,         
 @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR, @CSCO_TIPO_OPER, @CNIM_MVTO_RETE, @CSST_IMPR_RETE, @CSCO_USUA_APRO, @CDFE_USUA_APRO,     
 @CNNU_SECU_DIST, @CNPO_DIST, @CSTI_DOCU_DETR, @CSNU_DOCU_DETR, @CDFE_DOCU_DETR        
         
 While @@Fetch_status = 0            
  Begin          
   Insert Into TXMVTO_CNTB (CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE, NU_ASTO,         
   NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC,        
   TI_CAMB, CO_MONE, FA_CAMB, FA_CAMB_DIAR, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE,         
   NU_DOCU_REFE, FE_DOCU_REFE, NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV, SI_MVTO_CNTB, CO_UNID_ORIG,         
   CO_OPRC_ORIG, NU_ASTO_ORIG, NU_SECU_ORIG, CO_CNTA_ORIG, ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ,         
   ST_FLAG, ST_GEST, ST_REDO, CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER, IM_MVTO_RETE, ST_IMPR_RETE, CO_USUA_APRO,    
   FE_USUA_APRO, NU_SECU_DIST, PO_DIST, TI_DOCU_DETR, NU_DOCU_DETR, FE_DOCU_DETR, CO_USUA_CREA, FE_USUA_CREA,         
   CO_USUA_MODI, FE_USUA_MODI)        
   Values         
  (@ISCO_EMPR, @INNU_CNTB_DEST, @ISCO_UNID_CNTB, @CSCO_OPRC_CNTB, @CNNU_ANNO, @CNNU_MESE, @CSNU_ASTO,         
   @CNNU_SECU, @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR, @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU,         
   @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_CAMB, @CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR, @CSTI_OPER,         
   Round(@CNIM_MVTO_ORIG, 2), Round(@CNIM_MVTO_CNTB, 2), @CSDE_GLOS, @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,     
   @CDFE_DOCU_REFE, @CSNO_GIRA, @CDFE_ENTR_CHEQ, @CDFE_PROG_CHEQ, @CSCO_ORDE_SERV, @CSSI_MVTO_CNTB, @CSCO_UNID_ORIG,         
   @CSCO_OPRC_ORIG, @CSNU_ASTO_ORIG, @CNNU_SECU_ORIG, @CSCO_CNTA_ORIG, NULL, 9999, 9999,         
   @CSST_IMPR_CHEQ, @CSST_FLAG, @CSST_GEST, @CSST_REDO, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR, @CSCO_TIPO_OPER,         
   @CNIM_MVTO_RETE, @CSST_IMPR_RETE, @CSCO_USUA_APRO, @CDFE_USUA_APRO, @CNNU_SECU_DIST, @CNPO_DIST,         
   @CSTI_DOCU_DETR, @CSNU_DOCU_DETR, @CDFE_DOCU_DETR, @ISCO_USUA, @IDFE_USUA, @ISCO_USUA, @IDFE_USUA)        
      
 Fetch CU_TXMVTO_CNTB_I29_2 Into @CSCO_OPRC_CNTB, @CNNU_ANNO, @CNNU_MESE, @CSNU_ASTO, @CNNU_SECU,    
 @CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR, @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU,     
 @CDFE_DOCU, @CDFE_DOCU_VENC, @CSTI_CAMB, @CSCO_MONE, @CNFA_CAMB, @CNFA_CAMB_DIAR, @CSTI_OPER,     
 @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS, @CSTI_DOCU_REFE, @CSNU_DOCU_REFE, @CDFE_DOCU_REFE, @CSNO_GIRA,     
 @CDFE_ENTR_CHEQ, @CDFE_PROG_CHEQ, @CSCO_ORDE_SERV, @CSSI_MVTO_CNTB, @CSCO_UNID_ORIG, @CSCO_OPRC_ORIG,     
 @CSNU_ASTO_ORIG, @CNNU_SECU_ORIG, @CSCO_CNTA_ORIG, @CSST_OTRS, @CNNU_PROC, @CNNU_PROC_SECU, @CSST_IMPR_CHEQ,     
 @CSST_FLAG, @CSST_GEST, @CSST_REDO, @CNCO_TABL_ORIG, @CSCO_CLAV_TAOR, @CSCO_TIPO_OPER, @CNIM_MVTO_RETE,     
 @CSST_IMPR_RETE, @CSCO_USUA_APRO, @CDFE_USUA_APRO, @CNNU_SECU_DIST, @CNPO_DIST, @CSTI_DOCU_DETR, @CSNU_DOCU_DETR,     
 @CDFE_DOCU_DETR        
        
 End         
        
 Close CU_TXMVTO_CNTB_I29_2    
 Deallocate  CU_TXMVTO_CNTB_I29_2         
    
 -- FIN GRABA EN LA OPERACION DE AJUSTE LAS LINEAS DE MOVIMIENTO         
                               
 Commit Transaction  SP_TXMVTO_CNTB_I29                                  
                         
 Select @VSNU_ASTO, @VSST_FLAG                                           
     
 Return      
   
/*--------------------------------------- Fin ---------------------------------*/    



GO
